草庐IT

java vs C++ 通过引用传递

全部标签

pointers - 如何通过地址传递给采用接口(interface)的函数

我有一个定义如下的Character接口(interface):typeCharacterinterface{SomeFunction()}Player结构定义如下:typePlayerstruct{}func(r*Player)SomeFunction(){}//Somefieldsandotherfunctions....假设我有一个函数定义为funcTakeInterface(characterValueCharacter){//Dosomething}问题是,我想通过address将characterValue作为Player传递,以便对它所做的更改将对Player调用者传入。

go - 通过范围函数中的地址引用

我有一个定义如下的OuterStruct结构。我正在使用该函数初始化OuterStruct->InnerStruct值name和Var1insetup1()和Var1在setup2()中。在setup2()中分配的值总是nil因为它是按值引用它的。如何使用在这里引用我的地址?typeInnerStructstruct{NamestringVar1*api.Var1Var2*ap1.Var2}typeOuterStructstruct{opNamestringMyData[]InnerStructLogDirstring}func(obj*OuterStruct)Setup2(){for

go - 指针引用未存储在我的 go 程序中的结构中

我是go-lang的新手,我试图弄清楚如何正确地使用结构和依赖注入(inject)。我有点卡住了,因为我无法正确存储对另一个结构的引用。这是我生成CommandController的方法。存在对iris.Application的有效引用。funcProvideCommandController(application*iris.Application,commandRepositorycommand.CommandRepository)(*interfaces.CommandController,error){commandController:=interfaces.CommandC

variables - 使用其他变量中的数据引用go中的变量?

我对go/编码比较陌生。我希望能够通过使用变量来引用变量。vara=make([]int,0)varb=make([]int,0)varc=make([]int,0)我定义了一些sliceset:=input.Ask("Whichsetwouldyouliketoinputto(a,b,c):")fortrue{num:=input.Ask("Number:")strings.toLower(set)=append(strings.toLower(set),num)}我希望“strings.tolower”部分输出一个字符串,它确实如此,这将允许我选择我定义的变量之一。

go - 将 "net/http"上的 *Request 传递给 Golang 函数

是否可以将请求值传递给另一个函数?import"net/http"funcmain(){http.HandleFunc("saySomething",Say)}funcSay(responseWhttp.ResponseWriter,request*http.Request){name:=getName(request)//passingrequestvaluetoanotherfunction}funcgetName(requestsomeType)string{request.ParseForm()returnrequest.Form.Get("name")}

将结构/文档插入 mongo 时忽略 JSON 标记(通过 mgo)

这是结构的样子这就是文档在Mongo中的样子。 最佳答案 如果您查看mgo包的文档,您会看到其中的结构使用`bson:"fieldName`而非`json进行注释:"fieldName"`。你可以看到一个例子here这是因为mongo使用bson序列化格式而不是json来通过网络发送结构。bson在存储内容方面与json非常相似,但它是二进制格式,并针对在数据库等存储系统中的使用进行了优化。所以更新你的结构看起来像这样:typeEventstruct{Idstring`bson:"id"`CreationDatetime.Time`

go - 如何将字符串作为参数传递给 Golang 指针接收函数?

这个问题在这里已经有了答案:"usedasvalue"infunctioncall(1个回答)关闭4年前。我正在尝试一种带有值和指针接收函数的简单Go结构。我无法将一个字符串作为参数传递给指针接收函数来修改结构数据。任何人都可以帮忙吗?代码:packagemainimport("fmt")typebookstruct{authorstringnamestringcategorystringpriceint16}func(bbook)greet()string{return"Welcome"+b.author}func(b*book)changeAuthor(authorstring){

pointers - 无法通过结构方法替换指针

得到一个返回指针的结构方法:func(d*DataMap)Get(pCoord)*CellData{return&d.Data[p.X+(p.Y*d.Size)]}d.Data是一个CellData数组,它是一个具有多个字段的结构。使用这种方法我可以修改每个字段的内部值,即:example.Get(p).Something=123但是我不能这样做:example.Get(p)=*yada(yadaisa*CellData)我想用我得到的另一个指针替换指针的地方:cannotassigntoexample.Get(p)(undefined)我做错了什么?函数的输出已定义,不知道为什么会出

go - 为什么结构可以作为函数的接口(interface)传递?

我有一些examplecode将接口(interface)作为输入,如下所示。typeRouteGuideServerinterface{...}funcRegisterRouteGuideServer(s*grpc.Server,srvRouteGuideServer){s.RegisterService(&_RouteGuide_serviceDesc,srv)}一切都很好,但是当实现这个服务器时,我们有以下代码,它为函数提供了一个结构(实现接口(interface)),如下所示。typerouteGuideServerstruct{...}...pb.RegisterRouteG

go - 为什么 golang 范围运算符是通过声明局部变量来实现的?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭3年前。Improvethisquestion当循环使用golangrange运算符和address-of&运算符时,我们会得到一些意想不到的行为。举个例子:list:=[]int{1,2}pointerList:=[]*int{}for_,value:=rangelist{pointerList=append(pointerList,&value)}fmt.Print(*pointerList[0],*pointerList[1])